package cn.iocoder.yudao.module.mqtt.controller.admin.subscribewater.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - MQTT水监控分页 Request VO")
@Data
public class SubscribeWaterPageReqVO extends PageParam {

    @Schema(description = "设备KEY", example = "9746")
    private String deviceKey;

    @Schema(description = "MQTT配置ID", example = "23179")
    private Long mqttConfigId;

    @Schema(description = "主题")
    private String topic;

    @Schema(description = "温度")
    private String payloadWd;

    @Schema(description = "浊度")
    private String payloadZd;

    @Schema(description = "余氯")
    private String payloadYl;

    @Schema(description = "pH值")
    private String payloadPh;

    @Schema(description = "消息内容")
    private String payload;

    @Schema(description = "服务质量")
    private Integer qos;

    @Schema(description = "是否保留消息")
    private Boolean retained;

    @Schema(description = "消息方向：IN-接收，OUT-发送")
    private String direction;

    @Schema(description = "客户端ID", example = "18777")
    private String clientId;

    @Schema(description = "消息ID", example = "8008")
    private String messageId;

    @Schema(description = "时间戳")
    private LocalDateTime timestamp;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "设备主键集合")
    private List<String> deviceKeys;
}